import { singleton } from '@/utils/singleton'

class AuditStatus {
    constructor() {
        // 待审核
        this.PENDING = 1
        // 审核通过
        this.PASS = 2
        // 审核拒绝
        this.REJECT = 3
    }
}

class OrderStatus {
    constructor() {
        this.PAYMENT_PENDING = 1 // 待付款
        this.AWAITING_COMPLETION = 2 // 待完成
        this.USER_TO_BE_CONFIRMED = 3 // 用户待确认
        this.USER_CONFIRMED = 4 // 用户已确认
        this.USER_REJECTED = 5 // 用户已拒绝
        this.COMPLETED = 6 // 已完成
        this.CANCELLED = 7 // 已取消
    }
}

class OrderWashStatus {
    constructor() {
        // 待洗涤
        this.WASHING_PENDING = 2000
        // 店内洗涤
        this.IN_STORE_WASHING = 2001
        // 工厂洗涤
        this.FACTORY_WASHING = 2002
    }
}

class OrderState {
    constructor() {
        // 待支付
        this.PAYMENT_PENDING = 1
        // 店铺待收衣
        this.STORE_WAITING_FOR_PICKUP = 2
        // 店铺已收衣服
        this.STORE_HAS_PICKEDUP = 3
        // 店铺待审核
        this.STORE_PENDING_REVIEW = 4
        // 用户待确认
        this.USER_TO_BE_CONFIRMED = 5
        // 用户已确认
        this.USER_CONFIRMED = 6
        // 用户已拒绝
        this.USER_REJECTED = 7
        // 提交店内洗涤（此状态已弃用，改为洗涤中）
        this.SUBMIT_TO_IN_STORE_LAUNDRY = 8
        // 洗涤时提交异常
        this.ABNORMAL_SUBMISSION_DURING_WASH = 9
        // 洗涤时用户待确认
        this.USER_TO_BE_CONFIRMED_IN_WASH = 10
        // 洗涤时用户已确认
        this.USER_CONFIRMED_IN_WASH = 11
        // 洗涤时用户已拒绝
        this.USER_REJECTED_IN_WASH = 12
        // 洗涤完成
        this.WASH_COMPLETE = 13
        // 设置挂衣
        this.SETUP_HANGING_CLOTHES = 14
        // 送衣
        this.SEND_CLOTHES = 15
        // 送衣完成
        this.SEND_CLOTHES_COMPLETE = 16
        // 分配收衣
        this.ASSIGNMENT_PICKUP = 17
        // 店铺取消订单
        this.STORE_CANCEL_ORDER = 18
        // 用户取消订单
        this.USER_CANCEL_ORDER = 19
        // 店铺审核通过
        this.STORE_AUDIT_PASSED = 20
        // 订单完成
        this.ORDER_COMPLETED = 21
        // 部分挂衣完成
        this.PARTIAL_CLOTHES_HANGING_COMPLETED = 22
        // 待送衣
        this.AWAITING_DELIVERY = 23
        // 待洗涤
        this.AWAITING_WASHING = 24
        // 工厂待取单
        this.FACTORY_ORDER_PENDING = 27
        // 工厂已签收
        this.FACTORY_HAS_SIGNED = 28
        // 用户已签收
        this.USER_HAS_SIGNED = 30
        // 售后用户待确定
        this.AFTER_SALE_USER_TO_BE_DETERMINED = 31
        // 售后用户已拒绝
        this.AFTER_SALE_USER_REJECTED = 32
        // 售后用户已同意
        this.AFTER_SALE_USER_AGREED = 33
        // 售后店铺待确定
        this.AFTER_SALE_STORE_TO_BE_DETERMINED = 34
        // 售后店铺已拒绝
        this.AFTER_SALE_STORE_REJECTED = 35
        // 售后店铺已同意
        this.AFTER_SALE_STORE_AGREED = 36
        // 售后完成
        this.AFTER_SALE_COMPLETED = 37
        // 洗涤中
        this.LAUNDERING = 38
        // 待打包到工厂
        this.AWAITING_PACKED_TO_FACTORY = 39
        // 派送中
        this.DELIVERING = 40
    }
}

class ExceptionOrderAuditStatus {
    constructor() {
        // 待处理
        this.AWAITING_TREATMENT = 1
        // 处理中
        this.PROCESSING = 2
        // 已处理
        this.PROCESSED = 3
        // 已拒绝
        this.REJECT = 4
    }
}

class OrderExceptionState {
    constructor() {
        // 衣物缺失
        this.CLOTHES_LOST = 1
        // 瑕疵标注
        this.MARKING_DEFECTS = 2
        // 洗涤事故
        this.WASHING_ACCIDENT = 3
        // 未完成洗涤步骤
        this.UNFINISHED_WASHING_STEPS = 4
        // 其他
        this.OTHER = 5
    }
}

class BackWashOrderState {
    constructor() {
        // 待确认
        this.AWAITING_CONFIRM = 1
        // 待完成
        this.AWAITING_COMPLETION = 2
        // 已完成
        this.COMPLETED = 3
        // 已拒绝
        this.DECLINED = 4
    }
}

class BackWashType {
    constructor() {
        // 用户发起返洗
        this.USER_INITIATE_BACK_WASHING = 1
        // 店铺发起返洗
        this.STORE_INITIATE_BACK_WASHING = 2
    }
}

class DisputeOrderState extends BackWashOrderState {
    constructor() {
        super()
    }
}

class OrderThemType {
    constructor() {
        // 预约上门
        this.MAKE_AN_HOME_APPOINTMENT = 10
        // 预约上门制单
        this.BOOK_AN_APPOINTMENT_ONSITE_ORDER_MAKING = 11
        // 物流到店
        this.LOGISTICS_TO_STORE = 12
        // 预约衣柜
        this.BOOK_A_WARDROBE = 13
        // 会员充值
        this.MEMBER_RECHARGE = 14
        // 到店订单
        this.INSTORE_ORDER = 15
        // 到店收衣
        this.IN_STORE_COLLECTION = 21
    }
}

class LogisticsToShopOperateType {
    constructor() {
        // 联系客户
        this.CONTACT_CUSTOMER = 1
        // 订单详情
        this.ORDER_DETAILS = 2
        // 打印标签
        this.PRINT_LABEL = 3
        // 打印订单
        this.PRINT_ORDER = 4
        // 提交瑕疵
        this.SUBMIT_DEFECTS = 5
        // 挂衣位置详情
        this.HANGING_POSITION_DETAILS = 6
        // 打印快递单
        this.PRINT_COURIER_SLIPS = 7
        // 选择派送方式
        this.SELECT_DELIVERY_METHOD = 8
        // 分配收衣
        this.ASSIGNMENT_PICKUP = 9
        // 确认收衣
        this.CONFIRMED_COLLECTION = 10
        // 确认到达店铺
        this.CONFIRM_ARRIVE_STORE = 11
        // 提交工厂洗涤
        this.SUBMIT_FACTORY_WASHING = 12
        // 提交店内洗涤
        this.SUBMIT_TO_IN_STORE_LAUNDRY = 13
        // 退差价
        this.REFUND_PRICE_DIFFERENCE = 14
        // 补差价
        this.PAY_THE_PRICE_DIFFREENCE = 15
        // 确认洗涤完成
        this.CONFIRM_WASH_COMPLETION = 16
        // 提交异常
        this.COMMIT_EXCEPTION = 17
        // 设置挂衣
        this.SETUP_HANGING_CLOTHES = 18
        // 异常处理
        this.HANDLE_EXCEPTION = 19
        // 订单复核
        this.ORDER_REVIEW = 20
        // 用户签收
        this.USER_SIGNATURE = 21
        // 物流进度
        this.LOGISTICS_SCHEDULE = 22
        // 查看进度
        this.SHOW_PROGRESS = 23
        // 复核通过
        this.PASS_AFTER_REVIEW = 24
        // 回复评论
        this.REPLY_REVIEW = 25
        // 售后
        this.AFTER_SALE = 26
        // 审核通过
        this.AUDIT_PASS = 27
        // 取消订单
        this.CANCEL_ORDER = 28
    }
}

class WashingOrderOperateType {
    constructor() {
        const logisticsToStoreOperations = new LogisticsToShopOperateType()
        Array.from([
            'CONTACT_CUSTOMER',
            'ORDER_DETAILS',
            'PRINT_LABEL',
            'PRINT_ORDER',
            'SUBMIT_FACTORY_WASHING',
            'SUBMIT_TO_IN_STORE_LAUNDRY',
            'COMMIT_EXCEPTION',
            'HANDLE_EXCEPTION'
        ]).forEach(key => {
            if(logisticsToStoreOperations.hasOwnProperty(key)) {
                this[key] = logisticsToStoreOperations[key]
            }
        })
        // 整件上传视频
        this.WHOLE_PIECE_UPLOAD_VIDEO = 100
        // 单件上传视频
        this.SINGLE_PIECE_UPLOAD_VIDEO = 101
        // 洗涤进度
        this.WASHING_PROGRESS = 102
    }
}

class OrderAuditOperateType {
    constructor() {
        const logisticsToStoreOperations = new LogisticsToShopOperateType()
        Array.from([
            'CONTACT_CUSTOMER',
            'ORDER_DETAILS',
            'PRINT_LABEL',
            'PRINT_ORDER',
            'REFUND_PRICE_DIFFERENCE',
            'PAY_THE_PRICE_DIFFREENCE',
            'AUDIT_PASS',
            'SUBMIT_DEFECTS',
            'SUBMIT_FACTORY_WASHING',
            'SUBMIT_TO_IN_STORE_LAUNDRY'
        ]).forEach(key => {
            if(logisticsToStoreOperations.hasOwnProperty(key)) {
                this[key] = logisticsToStoreOperations[key]
            }
        })
        // 退款退货
        this.RETURN_REFUND = 50
    }
}

class OrderDetailsType {
    constructor() {
        // 物流订单
        this.LOGISTICS_ORDER = 1
        // 到店订单
        this.IN_STORE_ORDER = 2
    }
}

class OrderAuditStatus {
    constructor() {
        // 待审核
        this.PENDING_REVIEW = 1800
        // 用户待确认
        this.USER_TO_BE_CONFIRMED = 1801
        // 用户已确认
        this.USER_CONFIRMED = 1802
        // 用户已拒绝
        this.USER_REJECTED = 1803
        // 审核通过
        this.AUDIT_PASS = 1804
    }
}

class DebtAuditStatus {
    constructor() {
        // 未审核
        this.NOT_EXAMINED = 1
        // 已通过
        this.AUDIT_PASSED = 2
        // 已拒绝
        this.AUDIT_REJECTED = 3
    }
}

class RechargeManagementType {
    constructor() {
        // 会员卡
        this.MEMBER = 1
        // 团体卡
        this.GROUPS = 2
    }
}

class ShopAuthenticateStatus {
    constructor() {
        // 未审核
        this.UNAUDIT = 0
        // 待审核
        this.PENDING = 1
        // 审核通过
        this.PASS = 2
    }
}

class GroupCardAuditType {
    constructor() {
        // 企业团体卡申请审核
        this.CORPORATE_GROUP_CARD_APPLY_REVIEW = 1
        // 个人团体卡认证审核
        this.INDIVIDUAL_GROUP_CARD_CERTIFICATION_AUDIT = 2
    }
}

class ShopType {
    constructor() {
        // 自营店
        this.SELF_OPERATED_SHOP = 1
        // 加盟店
        this.FRANCHISED_SHOP = 2
        // 物业店
        this.PROPERTY_SHOP = 3
    }
}

class WardrobeLatticeType {
    constructor() {
        // 大号格子
        this.LARGE_LATTICE = 1
        // 中号格子
        this.MEDIUM_LATTICE = 2
        // 小号格子
        this.SMALL_LATTICE = 3
    }
}

class RoleType {
    constructor() {
        // 普通用户
        this.ORDINARY_USER = 0
        // 老板
        this.LEADER = 20
        // 员工
        this.STAFF = 21
        // 零时工
        this.TEMPORARY_WORKER = 22
        // 店长角色
        this.SHOPKEEPER = 25
        // 财务
        this.FINANCES = 26
    }
}

class DateType {
    constructor() {
        // 日
        this.DAY = 1
        // 周
        this.WEEK = 2
        // 月
        this.MONTH = 3
        // 年
        this.YEAR = 4
    }
}


class ApplyAuditStatus extends AuditStatus {
    constructor() {
        super()
    }
}

class GroupCardType {
    constructor() {
        // 个体工商户
        this.SELFEMPLOYED = 1
        // 企业团体卡
        this.CORPORATE_GROUP_CARD = 2
        // 家庭团体卡
        this.FAMILY_GROUP_CARD = 3
        // 个人团体卡
        this.INDIVIDUAL_GROUP_CARD = 4
    }
}

class GroupCardAuditStatus extends AuditStatus {
    constructor() {
        super()
    }
}

class GroupCardConsumType {
    constructor() {
        // 先消后付
        this.SPEND_FIRST_PAY_LATER = 1
        // 先付后消
	    this.PAY_BEFORE_SPEND = 2
    }
}

class ReceiveClothesStatus {
    constructor() {
        // 待收衣
        this.AWAITING_RECEIVE = 1501
        // 已收衣
        this.RECEIVED = 1502
    }
}

class ReceiveClothesType {
    constructor() {
        const orderThemeTypes = new OrderThemType()
        // 上门收衣
        this.TO_HOME_RECEIVE = orderThemeTypes.IN_STORE_COLLECTION
        // 衣柜收衣
        this.WARDROBE_INCOME = orderThemeTypes.BOOK_A_WARDROBE
        // 物流收衣
        this.LOGISTICS_INCOME = orderThemeTypes.LOGISTICS_TO_STORE
    }
}

class ReceiveClothesCategories {
    constructor() {
        const orderThemeTypes = new OrderThemType()
        // 上门制单
        this.DOOR_TO_DOOR_ORDER = orderThemeTypes.BOOK_AN_APPOINTMENT_ONSITE_ORDER_MAKING
        // 上门收衣
        this.DOOR_TO_DOOR_RECEIVE = orderThemeTypes.MAKE_AN_HOME_APPOINTMENT
        // 店员派送
        this.SHOP_ASSISTANT_DELIVERY = 1
        // 同城跑腿（跑腿派送）
        this.RUNNING_ERRANDS_IN_CITY = 2
        // 同城快递（同城快递派送）
        this.LOCAL_EXPRESS = 3
        // 快递寄送（快递派送）
        this.EXPRESS_DELIVERY = 4
        // 自寄送
        this.SELF_MAIL = 5
    }
}

class FactoryPickupOrderType {
    constructor() {
        // 工厂未取走
        this.FACTORY_NOT_PICKUP = 1
        // 工厂已签收
        this.FACTORY_SIGNED = 2
        // 工单
        this.WORK_ORDER = 3
    }
}

class DeliveryOrderStatus {
    constructor() {
        // 分配派送
        this.DISTRIBUTION_DELIVERY = 2300
        // 派送中
        this.OUT_OF_DELIVERY = 2301
        // 待取走
        this.PENDING_COLLECTION = 2302
        // 取衣超时
        this.FETCH_TIMEOUT = 2303
        // 用户签收
        this.USER_SIGNATURE = 2304
    }
}

class DeliveryOrderOperateType {
    constructor() {
        const logisticsToStoreOperations = new LogisticsToShopOperateType()
        Array.from([
            'CONTACT_CUSTOMER',
            'ORDER_DETAILS',
            'PRINT_LABEL',
            'PRINT_ORDER',
            'SELECT_DELIVERY_METHOD',
            'HANGING_POSITION_DETAILS',
            'PRINT_COURIER_SLIPS',
            'LOGISTICS_SCHEDULE',
            'SHOW_PROGRESS',
            'USER_SIGNATURE',
            'REPLY_REVIEW',
            'AFTER_SALE'
        ]).forEach(key => {
            if(logisticsToStoreOperations.hasOwnProperty(key)) {
                this[key] = logisticsToStoreOperations[key]
            }
        })
        // 提示用户取走
        this.PROMPT_USER_TAKE_OUT = 100
        // 确认已送达衣柜
        this.CONFIRM_DELIVERED_WARDROBE = 101
        // 打开衣柜
        this.OPEN_WARDROBE = 102
        // 收运费
        this.COLLECT_FREIGHT = 103
        // 提醒用户
        this.REMIND_USER = 104
        // 分配人员
        this.DISTRIBUTE_STAFF = 105
        // 确认送达店铺
        this.CONFIRMED_DELIVERY_STORE = 106
        // 通知用户
        this.NOTIFY_USER = 107
    }
}

class RefundOrderState {
    constructor() {
        // 待处理
        this.AWAITING_TREATMENT = 1
        // 已退款
        this.REFUNDED = 2
        // 已拒绝
        this.REJECTED = 3
    }
}

class RefundOrderOperateType {
    constructor() {
        // 联系客户
        this.CONTACT_CUSTOMER = 1
        // 订单详情
        this.ORDER_DETAILS = 2
        // 修改金额
        this.MODIFICATION_AMOUNT = 3
        // 拒绝退款
        this.REFUSAL_REFUND = 4
        // 确认退款
        this.CONFIRM_REFUND = 5
    }
}

class ReturnRefundOrderState {
    constructor() {
        // 待处理
        this.AWAITING_TREATMENT = 1
        // 处理中
        this.PROCESSING = 2
        // 已完成
        this.COMPLETED = 3
        // 已经拒绝
        this.REJECTED = 4
    }
}

class ReturnRefundType {
    constructor() {
        // 店铺发起
        this.STORE_INITIATE = 1
        // 用户发起
        this.USER_INITIATE = 2
    }
}

class ReturnRefundOrderOperateType {
    constructor() {
        // 联系客户
        this.CONTACT_CUSTOMER = 1
        // 订单详情
        this.ORDER_DETAILS = 2
        // 修改金额
        this.MODIFICATION_AMOUNT = 3
        // 拒绝退货退款
        this.REFUSAL_RETURN_REFUND = 4
        // 确认退货退款
        this.CONFIRM_RETURN_REFUND = 5
        // 收运费
        this.COLLECT_FREIGHT = 6
        // 查看进度
        this.SHOW_PROGRESS = 7
        // 再次发起退款
        this.RELAUNCH_REFUND = 8
    }
}

class WrangleOrderState {
    constructor() {
        // 待处理
        this.AWAITING_TREATMENT = 1
        // 已处理
        this.PROCESSED = 2
        // 已拒绝
        this.REJECTED = 3
    }
}

class WrangleType {
    constructor() {
        // 平台待介入
        this.PLATFORM_WAITING_INTERVENE = 1
        // 平台介入
        this.PLATFORM_INTERVENTION = 2
    }
}

class HangupClothesState {
    constructor() {
        // 待挂衣
        this.AWAITING_HANG_CLOTHES = 1
        // 已挂衣
        this.HUNGUP_CLOTHES = 2
    }
}

class HangupClothesType {
    constructor() {
        // 店铺洗涤
        this.SHOP_WASHING = 1
        // 工厂洗涤
        this.FACTORY_WASHING = 2
    }
}

class HangupClothesOrderOperateType {
    constructor() {
        // 联系客户
        this.CONTACT_CUSTOMER = 1
        // 订单详情
        this.ORDER_DETAILS = 2
         // 打印标签
         this.PRINT_LABEL = 3
         // 打印订单
         this.PRINT_ORDER = 4
        // 发起返洗
        this.INITIATE_BACK_WASHING = 5
        // 提交异常
        this.COMMIT_EXCEPTION = 6
        // 设置挂衣
        this.SETUP_HANGING_CLOTHES = 7
    }
}

class DeliveryType {
    constructor() {
        const receiveClothesType = new ReceiveClothesCategories()
        Array.from([
            'SHOP_ASSISTANT_DELIVERY',
            'LOCAL_EXPRESS',
            'EXPRESS_DELIVERY',
            'RUNNING_ERRANDS_IN_CITY',
            'SELF_MAIL'
        ]).forEach(key => {
            if(receiveClothesType.hasOwnProperty(key)) {
                this[key] = receiveClothesType[key]
            }
        })
    }
}

class AbnormalType {
    constructor() {
        // 补差价
        this.PAY_THE_PRICE_DIFFREENCE = 1901
        // 瑕疵
        this.DEFECTS = 1902
        // 退差价
        this.REFUND_PRICE_DIFFERENCE = 1903
    }
}

class AppCategories {
    constructor() {
        // 基础应用
        this.BASIC_APPLICATION = 1,
        // 功能管理
        this.FEATURE_MANAGEMENT = 2,
        // 订单管理
        this.ORDER_MANAGEMENT = 3
    }
}

let orderStatusMap = null
let orderWashStatusMap = null
let orderStateMap = null
let exceptionOrderAuditStatusMap = null
let orderExceptionStateMap = null
let backWashOrderStateMap = null
let backWashTypeMap = null
let disputeOrderStateMap = null
let orderThemTypeMap = null
let logisticsToShopOperateTypeMap = null
let washingOrderOperateTypeMap = null
let orderAuditOperateTypeMap = null
let orderDetailsTypeMap = null
let orderAuditStatusMap = null
let debtAuditStatusMap = null
let rechargeManagementTypeMap = null
let shopAuthenticateStatusMap = null
let groupCardAuditTypeMap = null
let shopTypeMap = null
let wardrobeLatticeTypeMap = null
let roleTypeMap = null
let dateTypeMap = null
let applyAuditStatusMap = null
let groupCardTypeMap = null
let groupCardAuditStatusMap = null
let groupCardConsumTypeMap = null
let receiveClothesStatusMap = null
let receiveClothesTypeMap = null
let receiveClothesCategoriesMap = null
let factoryPickupOrderTypeMap = null
let deliveryOrderStatusMap = null
let deliveryOrderOperateTypeMap = null
let refundOrderStateMap = null
let refundOrderOperateTypeMap = null
let returnRefundOrderStateMap = null
let returnRefundTypeMap = null
let returnRefundOrderOperateTypeMap = null
let wrangleOrderStateMap = null
let wrangleTypeMap = null
let hangupClothesStateMap = null
let hangupClothesTypeMap = null
let hangupClothesOrderOperateTypeMap = null
let deliveryTypeMap = null
let abnormalTypeMap = null
let appCategoriesMap = null

function init() {
    const OrderStatusSingleton = singleton(OrderStatus)
    const OrderWashStatusSingleton = singleton(OrderWashStatus)
    const OrderStateSingleton = singleton(OrderState)
    const ExceptionOrderAuditStatusSingleton = singleton(ExceptionOrderAuditStatus)
    const OrderExceptionStateSingleton = singleton(OrderExceptionState)
    const BackWashOrderStateSingleton = singleton(BackWashOrderState)
    const BackWashTypeSingleton = singleton(BackWashType)
    const DisputeOrderStateSingleton = singleton(DisputeOrderState)
    const OrderThemTypeSingleton = singleton(OrderThemType)
    const LogisticsToShopOperateTypeSingleton = singleton(LogisticsToShopOperateType)
    const WashingOrderOperateTypeSingleton = singleton(WashingOrderOperateType)
    const OrderAuditOperateTypeSingleton = singleton(OrderAuditOperateType)
    const OrderDetailsTypeSingleton = singleton(OrderDetailsType)
    const OrderAuditStatusSingleton = singleton(OrderAuditStatus)
    const DebtAuditStatusSingleton = singleton(DebtAuditStatus)
    const RechargeManagementTypeSingleton = singleton(RechargeManagementType)
    const ShopAuthenticateStatusSingleton = singleton(ShopAuthenticateStatus)
    const GroupCardAuditTypeSingleton = singleton(GroupCardAuditType)
    const ShopTypeSingleton = singleton(ShopType)
    const WardrobeLatticeTypeSingleton = singleton(WardrobeLatticeType)
    const RoleTypeSingleton = singleton(RoleType)
    const DateTypeSingleton = singleton(DateType)
    const ApplyAuditStatusSingleton = singleton(ApplyAuditStatus)
    const GroupCardTypeSingleton = singleton(GroupCardType)
    const GroupCardAuditStatusSingleton = singleton(GroupCardAuditStatus)
    const GroupCardConsumTypeSingleton = singleton(GroupCardConsumType)
    const ReceiveClothesStatusSingleton = singleton(ReceiveClothesStatus)
    const ReceiveClothesTypeSingleton = singleton(ReceiveClothesType)
    const ReceiveClothesCategoriesSingleton = singleton(ReceiveClothesCategories)
    const FactoryPickupOrderTypeSingleton = singleton(FactoryPickupOrderType)
    const DeliveryOrderStatusSingleton = singleton(DeliveryOrderStatus)
    const DeliveryOrderOperateTypeSingleton = singleton(DeliveryOrderOperateType)
    const RefundOrderStateSingleton = singleton(RefundOrderState)
    const RefundOrderOperateTypeSingleton = singleton(RefundOrderOperateType)
    const ReturnRefundOrderStateSingleton = singleton(ReturnRefundOrderState)
    const ReturnRefundTypeSingleton = singleton(ReturnRefundType)
    const ReturnRefundOrderOperateTypeSingleton = singleton(ReturnRefundOrderOperateType)
    const WrangleOrderStateSingleton = singleton(WrangleOrderState)
    const WrangleTypeSingleton = singleton(WrangleType)
    const HangupClothesStateSingleton = singleton(HangupClothesState)
    const HangupClothesTypeSingleton = singleton(HangupClothesType)
    const HangupClothesOrderOperateTypeSingleton = singleton(HangupClothesOrderOperateType)
    const DeliveryTypeSingleton = singleton(DeliveryType)
    const AbnormalTypeSingleton = singleton(AbnormalType)
    const AppCategoriesSingleton = singleton(AppCategories)

    orderStatusMap = new OrderStatusSingleton()
    orderWashStatusMap = new OrderWashStatusSingleton()
    orderStateMap = new OrderStateSingleton()
    exceptionOrderAuditStatusMap = new ExceptionOrderAuditStatusSingleton()
    orderExceptionStateMap = new OrderExceptionStateSingleton()
    backWashOrderStateMap = new BackWashOrderStateSingleton()
    backWashTypeMap = new BackWashTypeSingleton()
    disputeOrderStateMap = new DisputeOrderStateSingleton()
    orderThemTypeMap = new OrderThemTypeSingleton()
    logisticsToShopOperateTypeMap = new LogisticsToShopOperateTypeSingleton()
    washingOrderOperateTypeMap = new WashingOrderOperateTypeSingleton()
    orderAuditOperateTypeMap = new OrderAuditOperateTypeSingleton()
    orderDetailsTypeMap = new OrderDetailsTypeSingleton()
    orderAuditStatusMap = new OrderAuditStatusSingleton()
    debtAuditStatusMap = new DebtAuditStatusSingleton()
    rechargeManagementTypeMap = new RechargeManagementTypeSingleton()
    shopAuthenticateStatusMap = new ShopAuthenticateStatusSingleton()
    groupCardAuditTypeMap = new GroupCardAuditTypeSingleton()
    shopTypeMap = new ShopTypeSingleton()
    wardrobeLatticeTypeMap = new WardrobeLatticeTypeSingleton()
    roleTypeMap = new RoleTypeSingleton()
    dateTypeMap = new DateTypeSingleton()
    applyAuditStatusMap = new ApplyAuditStatusSingleton()
    groupCardTypeMap = new GroupCardTypeSingleton()
    groupCardAuditStatusMap = new GroupCardAuditStatusSingleton()
    groupCardConsumTypeMap = new GroupCardConsumTypeSingleton()
    receiveClothesStatusMap = new ReceiveClothesStatusSingleton()
    receiveClothesTypeMap = new ReceiveClothesTypeSingleton()
    receiveClothesCategoriesMap = new ReceiveClothesCategoriesSingleton()
    factoryPickupOrderTypeMap = new FactoryPickupOrderTypeSingleton()
    deliveryOrderStatusMap = new DeliveryOrderStatusSingleton()
    deliveryOrderOperateTypeMap = new DeliveryOrderOperateTypeSingleton()
    refundOrderStateMap = new RefundOrderStateSingleton()
    refundOrderOperateTypeMap = new RefundOrderOperateTypeSingleton()
    returnRefundOrderStateMap = new ReturnRefundOrderStateSingleton()
    returnRefundTypeMap = new ReturnRefundTypeSingleton()
    returnRefundOrderOperateTypeMap = new ReturnRefundOrderOperateTypeSingleton()
    wrangleOrderStateMap = new WrangleOrderStateSingleton()
    wrangleTypeMap = new WrangleTypeSingleton()
    hangupClothesStateMap = new HangupClothesStateSingleton()
    hangupClothesTypeMap = new HangupClothesTypeSingleton()
    hangupClothesOrderOperateTypeMap = new HangupClothesOrderOperateTypeSingleton()
    deliveryTypeMap = new DeliveryTypeSingleton()
    abnormalTypeMap = new AbnormalTypeSingleton()
    appCategoriesMap = new AppCategoriesSingleton()
}

init()

export {
    orderStatusMap,
    orderWashStatusMap,
    orderStateMap,
    exceptionOrderAuditStatusMap,
    orderExceptionStateMap,
    backWashOrderStateMap,
    backWashTypeMap,
    disputeOrderStateMap,
    orderThemTypeMap,
    logisticsToShopOperateTypeMap,
    washingOrderOperateTypeMap,
    orderAuditOperateTypeMap,
    orderDetailsTypeMap,
    orderAuditStatusMap,
    debtAuditStatusMap,
    rechargeManagementTypeMap,
    shopAuthenticateStatusMap,
    groupCardAuditTypeMap,
    shopTypeMap,
    wardrobeLatticeTypeMap,
    roleTypeMap,
    dateTypeMap,
    applyAuditStatusMap,
    groupCardTypeMap,
    groupCardAuditStatusMap,
    groupCardConsumTypeMap,
    receiveClothesStatusMap,
    receiveClothesTypeMap,
    receiveClothesCategoriesMap,
    factoryPickupOrderTypeMap,
    deliveryOrderStatusMap,
    deliveryOrderOperateTypeMap,
    refundOrderStateMap,
    refundOrderOperateTypeMap,
    returnRefundOrderStateMap,
    returnRefundTypeMap,
    returnRefundOrderOperateTypeMap,
    wrangleOrderStateMap,
    wrangleTypeMap,
    hangupClothesStateMap,
    hangupClothesTypeMap,
    hangupClothesOrderOperateTypeMap,
    deliveryTypeMap,
    abnormalTypeMap,
    appCategoriesMap
}